package com.pe.pgn.clubpgn.service;

import java.util.List;
import java.util.Map;

import org.springframework.ui.Model;

import com.pe.pgn.clubpgn.domain.ClpmSerieCanje;
import com.pe.pgn.clubpgn.domain.beans.BNAlmacen;
import com.pe.pgn.clubpgn.domain.beans.BNArticulo;
import com.pe.pgn.clubpgn.domain.beans.BNClientesPersona;
import com.pe.pgn.clubpgn.domain.beans.BNDocumentoMovArticulo;
import com.pe.pgn.clubpgn.model.User;

/**
 * @author Frank
 * */

@SuppressWarnings("unchecked")
public interface CanjeService {

	public List<BNDocumentoMovArticulo> obtenerListaCanje();
	
	public List<BNDocumentoMovArticulo> busquedaCanje(String codeEstacion,
		String codeTarjeta, String daInicioDoc, String daFinDoc, String coCatalogo,
		String nuSerie, String nuDocumento, String deCliente, String codePremio, String stCanje, String stTipoDoc);

	public List<ClpmSerieCanje> obtenerListaSerieCanje();

	public BNDocumentoMovArticulo obtenerCanjePremio(Long id);

	public List<BNAlmacen> obtenerListaAlmacen();

	public User getUsuarioLogueado();

	public BNAlmacen obtenerAlmacenPorEstacion(Long idEstacion);
	
	public BNClientesPersona obtenerDatosClientePorTarjeta(String codeTarjeta);

	public BNArticulo obtenerDatosPremioPorCodigo(String codePremio,String coAlmacen);

	public List<BNArticulo> obtenerPremios(Long coalmacen, Long coCatalogo);
	
	public List<BNArticulo> obtenerPremiosConFiltros(String coCatalogo,String coCategoria,
	String dePremio,String deCodigoPremio,String stManejaStock,String stManejaSerie, String coAlmacen);

	public Map guardarCanjePremio(BNDocumentoMovArticulo bndocumento);

	public void obtenerListasDatosUbigeo(Model model, BNDocumentoMovArticulo bnCanje);

	public Map canjearReserva(BNDocumentoMovArticulo bndocumento);

	public List<ClpmSerieCanje> obtenerListaSerieCanjePorEstacionTipoDocumento(
			String codeEstacion, String stTipoDoc);
	
	public List<ClpmSerieCanje> obtenerListaSerieCanjePorAlmacenTipoDocumento(
			String coAlmacen, String stTipoDoc);
	
	public BNDocumentoMovArticulo obtenerCanjesInstantaneo(String id, String codCanje);
	

}
